xen.git
15 years agox86: New boot option availmem= to limit usable system RAM.
Keir Fraser [Wed, 21 Jul 2010 07:43:35 +0000 (08:43 +0100)]
x86: New boot option availmem= to limit usable system RAM.

Unlike mem=, this specifies the limit on usable RAM, rather than a
limit on maximum physical address of RAM.

Original patch by Sarina Canelake <sarina.canelake@Oracle.Com>

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoMerge
Keir Fraser [Tue, 20 Jul 2010 16:56:07 +0000 (17:56 +0100)]
Merge

15 years agoAttached patch fixes linking error when creating the xl binary.
Stefano Stabellini [Tue, 20 Jul 2010 16:37:09 +0000 (17:37 +0100)]
Attached patch fixes linking error when creating the xl binary.
The xl binary compiles in xl_cmdimpl.c which calls code from
libxl_paths.c and libxl_bootloader.c.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
15 years agoAttached patch takes over some portability fixes from tools/console
Stefano Stabellini [Tue, 20 Jul 2010 16:26:38 +0000 (17:26 +0100)]
Attached patch takes over some portability fixes from tools/console
to make libxl build on NetBSD.

blktapctl is build on Linux only. This will be another patch to finally
unbreak libxl.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
15 years agoimplement xl vncviewer
Stefano Stabellini [Tue, 20 Jul 2010 16:22:14 +0000 (17:22 +0100)]
implement xl vncviewer

Implement xl vncviewer. The only difference from xm vncviewer is that we
obey the VNCVIEWER environment variable.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agohvmloader/gpxe: Add a couple of bug-fix patches from upstream gpxe
Keir Fraser [Tue, 20 Jul 2010 15:09:50 +0000 (16:09 +0100)]
hvmloader/gpxe: Add a couple of bug-fix patches from upstream gpxe

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agohvmloader: clear the xenbus event-channel when we're done with it.
Keir Fraser [Tue, 20 Jul 2010 12:42:17 +0000 (13:42 +0100)]
hvmloader: clear the xenbus event-channel when we're done with it.
Otherwise a later xenbus client that naively waits for the rising edge
could get stuck.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agogdbsx: Implement missing Makefile rules.
Keir Fraser [Tue, 20 Jul 2010 10:26:20 +0000 (11:26 +0100)]
gdbsx: Implement missing Makefile rules.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agotools: Update distclean target to remove auto-gen'ed tarballs.
Keir Fraser [Tue, 20 Jul 2010 10:18:39 +0000 (11:18 +0100)]
tools: Update distclean target to remove auto-gen'ed tarballs.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agohvmloader: Download gpxe bits via HTTP rather than GIT protocol.
Keir Fraser [Tue, 20 Jul 2010 10:09:21 +0000 (11:09 +0100)]
hvmloader: Download gpxe bits via HTTP rather than GIT protocol.

Latter is faster but won't work through all firewall setups.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agohvmloader: Build GPXE from upstream git repo, latest release tag.
Keir Fraser [Tue, 20 Jul 2010 09:58:04 +0000 (10:58 +0100)]
hvmloader: Build GPXE from upstream git repo, latest release tag.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoMerge
Keir Fraser [Mon, 19 Jul 2010 17:56:02 +0000 (18:56 +0100)]
Merge

15 years agoMore consistent error handling in libxl
Stefano Stabellini [Mon, 19 Jul 2010 17:40:09 +0000 (18:40 +0100)]
More consistent error handling in libxl

Lots of places in libxl return -1 as an error which is inconsistent with
libxl error codes since that is ERROR_VERSION. Also in other places the
xc_* function to implement a command is called but the return value is
either never checked or not passed on.

This patch introduces a new internal function libxl_xc_error() which
maps xc error codes to xl error codes. Callers of libxc functions are
converted to use this when returning error codes back to libxl callers.

Also a bug is fixed where a caller depends on errno being set but is
cleared by cleanup code which calls in to library functions which modify
errno as a side-effect.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
15 years agoImplement xl dump-core
Stefano Stabellini [Mon, 19 Jul 2010 14:33:38 +0000 (15:33 +0100)]
Implement xl dump-core

Implements dump-core command which is similar to xm dump-core except
that it requires an additional argument which is the target filename.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
15 years agomake libxl build since 21811
Stefano Stabellini [Mon, 19 Jul 2010 14:15:32 +0000 (15:15 +0100)]
make libxl build since 21811

First hunk, I assume is getting the arguments in wrong order on memset.

Second hunk is to kill a compiler warning about mis-use of printf-style
format strings which kills the build on -Werror.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
15 years agoActually it's an interrupt descriptor table register :)
Stefano Stabellini [Mon, 19 Jul 2010 14:11:07 +0000 (15:11 +0100)]
Actually it's an interrupt descriptor table register :)

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
15 years agotools: gpxe build fix for NetBSD
Keir Fraser [Mon, 19 Jul 2010 14:10:20 +0000 (15:10 +0100)]
tools: gpxe build fix for NetBSD

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
15 years agoThis patch introduces libxl_primary_console_exec: a new libxl function
Stefano Stabellini [Mon, 19 Jul 2010 11:47:53 +0000 (12:47 +0100)]
This patch introduces libxl_primary_console_exec: a new libxl function
that finds the domid and console number corresponding to the primary
console of a given vm. The domid might be different from the domid of
the VM and the console number might not be 0 when using stubdoms.
The caller (xl_cmdimpl.c in this case) has to make sure that the stubdom
is already created before calling libxl_primary_console_exec in the hvm
case. In the PV case libxl_primary_console_exec has to be called before
libxl_run_bootloader.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoexecute command by execvp() so can search command in PATH.
Stefano Stabellini [Mon, 19 Jul 2010 11:22:25 +0000 (12:22 +0100)]
execute command by execvp() so can search command in PATH.

Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
15 years agoImprove balloon support for NetBSD.
Stefano Stabellini [Mon, 19 Jul 2010 11:22:04 +0000 (12:22 +0100)]
Improve balloon support for NetBSD.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
15 years agoWithout this we leak an fd on each domain shutdown and eventually run
Stefano Stabellini [Mon, 19 Jul 2010 11:21:24 +0000 (12:21 +0100)]
Without this we leak an fd on each domain shutdown and eventually run
out of file descriptors meaning new the console of new domains are not
logged.

Seems to have been accidentally removed in 16638:28921e83000b.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agoImplement "xl tmem-freeable" to match "xm tmem-freeable".
Stefano Stabellini [Mon, 19 Jul 2010 11:20:41 +0000 (12:20 +0100)]
Implement "xl tmem-freeable" to match "xm tmem-freeable".

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
15 years agoMerge
Keir Fraser [Fri, 16 Jul 2010 16:44:04 +0000 (17:44 +0100)]
Merge

15 years agovtd: Do not update-and-flush an IOMMU PTE if it does not change.
Keir Fraser [Fri, 16 Jul 2010 16:41:53 +0000 (17:41 +0100)]
vtd: Do not update-and-flush an IOMMU PTE if it does not change.

There are cases of identical repeated calls to
iommu_map_page(). Flushing is slow, so it's worth detecting these and
bailing early.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoiommu: Map dom0 initial allocation in 'dom0-strict' iommu mode.
Keir Fraser [Fri, 16 Jul 2010 15:19:51 +0000 (16:19 +0100)]
iommu: Map dom0 initial allocation in 'dom0-strict' iommu mode.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agox86: use cpuid vector 0xb when available for detecting cpu topology
Keir Fraser [Fri, 16 Jul 2010 12:54:44 +0000 (13:54 +0100)]
x86: use cpuid vector 0xb when available for detecting cpu topology

cpuid leaf 0xb provides extended topology enumeration. This interface
provides the 32-bit x2APIC id of the logical processor and it also
provides a new mechanism to detect SMT and core siblings (which
provides increased addressability).

Signed-off-by: Weidong Han <weidong.han@intel.com>
15 years agoACPI: add support for x2APIC ACPI extensions
Keir Fraser [Fri, 16 Jul 2010 12:52:18 +0000 (13:52 +0100)]
ACPI: add support for x2APIC ACPI extensions

All logical processors with APIC ID values of 255 and greater will
have their APIC reported through Processor X2APIC structure (type-9
entry type) and all logical processors with APIC ID less than 255 will
have their APIC reported through legacy Processor Local APIC (type-0
entry type) only. This is the same case even for NMI structure
reporting.

The Processor X2APIC Affinity structure provides the association
between the X2APIC ID of a logical processor and the proximity domain
to which the logical processor belongs.

This patch adds 2 new subtables to MADT and one new subtable to SRAT.

This patch also changes x86_acpiid_to_apicid from u8 to u32 for x2APIC
ID, and changes mp_register_lapic to accept 32-bit id. But there are
still some 8-bit apic id hardcode and assumptions in Xen code, it
needs to be fixed in future.

Signed-off-by: Weidong Han <weidong.han@intel.com>
15 years agoxen: Send the debug VIRQ to guests after the rest of the domain dump is done.
Keir Fraser [Fri, 16 Jul 2010 12:51:27 +0000 (13:51 +0100)]
xen: Send the debug VIRQ to guests after the rest of the domain dump is done.

Send the debug VIRQ to guests after the rest of the domain dump is
done. This stops all the 'q' debug-key output getting interleaved with
the debug-virq output from a pv-ops dom0 kernel.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agoBefore this patch only log messages with precisely priority
Stefano Stabellini [Fri, 16 Jul 2010 11:10:56 +0000 (12:10 +0100)]
Before this patch only log messages with precisely priority
LOG_WARNING (or precisely LOG_DEBUG if -v) would be logged.

xenconsoled only actually logs using LOG_ERR and LOG_DEBUG so for the
most part we would have been logging absolutely nothing up until now.

Linux provides a LOG_UPTO macro but I'm not sure how portable that is
so I have opencoded the list of levels.

Do I get some sort of prize for fixing a bug introduced in 2005?

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agopygrub: look in every partition for something to boot
Ian Jackson [Thu, 15 Jul 2010 17:18:16 +0000 (18:18 +0100)]
pygrub: look in every partition for something to boot

pygrub: look in every partition for something to boot, in case
the OS installer (SLES 10 sp1 in particular) forgets to mark the
boot partition as active.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Acked-by: David Markey <admin@dmarkey.com>
15 years agoxm: Do not check path of kernel if bootloader is specified
Ian Jackson [Thu, 15 Jul 2010 15:32:50 +0000 (16:32 +0100)]
xm: Do not check path of kernel if bootloader is specified

When create DomU, if bootloader is specified, 'kernel/ramdisk' will be
used by bootloader when boots DomU. So it is needless to check the
path is existent or not.

Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
15 years agogdbsx: update README and remove space in q packet
Ian Jackson [Thu, 15 Jul 2010 15:30:24 +0000 (16:30 +0100)]
gdbsx: update README and remove space in q packet

Newer version of gdb, version 7*, seems to have bug where it is not
parsing thread list from gdbsx properly. Getting rid of the space in
thread list works around it. It's ok with older gdb also.

Signed-off-by: Mukesh Rathor <mukesh.rathor@oracle.com>
15 years agoxl: start numbering vifs from 0
Ian Jackson [Wed, 14 Jul 2010 15:46:49 +0000 (16:46 +0100)]
xl: start numbering vifs from 0

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agolibxl, xl: support running bootloader (e.g. pygrub) in domain 0
Ian Jackson [Wed, 14 Jul 2010 15:45:38 +0000 (16:45 +0100)]
libxl, xl: support running bootloader (e.g. pygrub) in domain 0

Much of the bootloader interaction (including the Solaris and NetBSD
portability bits) are translated pretty much directly from the python
in tools/python/xen/xend/XendBootloader.py

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agolibxl: add function to attach/detach a disk to/from the local VM
Ian Jackson [Wed, 14 Jul 2010 15:44:18 +0000 (16:44 +0100)]
libxl: add function to attach/detach a disk to/from the local VM

Useful if you need to read a guest filesystem (e.g. pygrub).

I'm not overly thrilled with the implementation WRT tap interfaces,
particularly WRT to detach. I was unable to find a way to get at the
paramters necessary to call tap_ctl_destroy so I assumed for now it
that is OK to assume that the tap device is going to be wanted for the
actual domain at some point in the immediate future and hence there is
no pressing need to destroy it.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agolibxl: support mapping files rather than carrying paths around
Ian Jackson [Wed, 14 Jul 2010 15:43:49 +0000 (16:43 +0100)]
libxl: support mapping files rather than carrying paths around

This will allow us to map and then unlink the file and therefore
delete the process on process exit or explicit unmap.

Using the mmaped versions of these files required rewriting build_pv
to use the xc_dom builder functionality directly rather than through
the xc_linux_build "compatibility layer". (The status of the
xc_linux_build interface as a compatibility layer seems a bit dubious
since all existing callers use it but if anything is going to replace
it then libxl seems like the likely candidate).

I'm not thrilled with the definition of the maps lifecycle. This could
be solved by adding a helper function to explicitly free the toplevel
structure.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agolibxl, xl: exec xenconsole in current process, defer decision to fork to caller
Ian Jackson [Wed, 14 Jul 2010 15:40:33 +0000 (16:40 +0100)]
libxl, xl: exec xenconsole in current process, defer decision to fork to caller

Use this to run xenconsole as the foreground process and move the
connection to the console in the "create -c" case early enough to be
able to view output from the bootloader. This behaviour is consistent
with how both "xm console" and "xm create -c" operate.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agolibxl: fix typo in comment
Ian Jackson [Wed, 14 Jul 2010 15:40:09 +0000 (16:40 +0100)]
libxl: fix typo in comment

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agolibxl: add libxl_strdup convenience function
Ian Jackson [Wed, 14 Jul 2010 15:39:43 +0000 (16:39 +0100)]
libxl: add libxl_strdup convenience function

Use in preference to libxl_sprintf(..., "%s", "...")

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agolibxl: add printf attribute to libxl_xs_write and fixup resulting warnings
Ian Jackson [Wed, 14 Jul 2010 15:38:47 +0000 (16:38 +0100)]
libxl: add printf attribute to libxl_xs_write and fixup resulting warnings

There is an unfortunate warning for the empty format string by default
which I workaround by adding -Wno-format-zero-length.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agoxenconsole: do not exit if a pty device is missing
Ian Jackson [Wed, 14 Jul 2010 15:36:47 +0000 (16:36 +0100)]
xenconsole: do not exit if a pty device is missing

This can just mean we have raced with the bootloader exiting and if we
continue we will likely see the real domain console show up.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agopygrub: introduce easier to parse output format
Ian Jackson [Wed, 14 Jul 2010 15:36:23 +0000 (16:36 +0100)]
pygrub: introduce easier to parse output format

libxl would rather like to parse the output of pygrub. Rather than
implement an SXP parser in libxl add a --output-format option to
pygrub which can select an alternative, simpler to parse,
format. Available formats are:
    sxp: current SXP output format;
    simple: simple key+value output with \n separating item ( for
debugging). key and value are separated by a single
space (and key therefore cannot contain a space);
    simple0: as simple but with \0 as a separator;

Also add --output-directory to allow temporary files to be placed
somewhere other than /var/run/xend/boot.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agotools/ocaml: add the missing license file that all OCaml libs refer to
Ian Jackson [Wed, 14 Jul 2010 15:32:47 +0000 (16:32 +0100)]
tools/ocaml: add the missing license file that all OCaml libs refer to

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
15 years agoxl: default timer_mode to 1
Ian Jackson [Wed, 14 Jul 2010 15:31:59 +0000 (16:31 +0100)]
xl: default timer_mode to 1

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agotools/misc/xenpm: provide core/package cstate residencies
Ian Jackson [Wed, 14 Jul 2010 15:30:42 +0000 (16:30 +0100)]
tools/misc/xenpm: provide core/package cstate residencies

According to Intel 64 and IA32 Architectures SDM 3B Appendix B, Intel
Nehalem/Westmere processors provide h/w MSR to report the core/package
cstate residencies.Extend sysctl_get_pmstat interface to pass the
core/package cstate residencies, and modify xenpm to output those
information.

[tools part of the patch]

Signed-off-by: Wei Gang <gang.wei@intel.com>
15 years agotools/misc/xenpm: fix get-cpu-topology
Ian Jackson [Tue, 13 Jul 2010 18:34:48 +0000 (19:34 +0100)]
tools/misc/xenpm: fix get-cpu-topology

fix get-cpu-topology

Signed-off-by: Wei Gang <gang.wei@intel.com>
15 years agotools/ocaml: Properly adjust fields in ocaml structure to match the C layer.
Ian Jackson [Tue, 13 Jul 2010 18:28:13 +0000 (19:28 +0100)]
tools/ocaml: Properly adjust fields in ocaml structure to match the C layer.

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
15 years agotools/ocaml: add a simple logger to the ocaml bindings
Ian Jackson [Tue, 13 Jul 2010 18:27:50 +0000 (19:27 +0100)]
tools/ocaml: add a simple logger to the ocaml bindings

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
15 years agotools/ocaml: register the ocaml exception so it can be used at the C level.
Ian Jackson [Tue, 13 Jul 2010 18:27:33 +0000 (19:27 +0100)]
tools/ocaml: register the ocaml exception so it can be used at the C level.

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
15 years agotools/debugger/gdbsx: enabled by only x86
Ian Jackson [Tue, 13 Jul 2010 18:08:48 +0000 (19:08 +0100)]
tools/debugger/gdbsx: enabled by only x86

The changeset 21752:29e545151078 breaks ia64, since gdbsx supports
only x86.

Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
15 years agox86: optimize this_cpu()
Keir Fraser [Tue, 13 Jul 2010 17:17:28 +0000 (18:17 +0100)]
x86: optimize this_cpu()

Besides the .text space savings of over 2.5k on x86-64 (1.5k for
x86-32) this removes a load (plus a lea on x86-64) from various
frequently executed code paths, and finally provides a reason (other
than legibility) to prefer this_cpu() over per_cpu() in all places
where smp_processor_id() isn't being called anyway.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years ago[IOMMU] Debug info for AMD IOMMU event log
Keir Fraser [Tue, 13 Jul 2010 17:13:33 +0000 (18:13 +0100)]
[IOMMU] Debug info for AMD IOMMU event log

Print out the event log entry content for debug purposes.
Additionally, when IOMMU reset event log (due to event log overflow),
we should print out the event log content for debugging.

Signed-off-by: Wei Huang <wei.huang2@amd.com>
Signed-off-by: Wei Wang <wei.wang2@amd.com>
15 years agox86: Avoid assumptions about C struct layouts from asm code.
Keir Fraser [Tue, 13 Jul 2010 17:12:15 +0000 (18:12 +0100)]
x86: Avoid assumptions about C struct layouts from asm code.

Largely this involves avoiding assumptions about 'struct cpu_info'.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agosysctl: Another clarification re. max_cpu_index.
Keir Fraser [Mon, 12 Jul 2010 17:39:18 +0000 (18:39 +0100)]
sysctl: Another clarification re. max_cpu_index.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agosysctl: Make meaning of max_cpu_index field clearer.
Keir Fraser [Mon, 12 Jul 2010 17:33:30 +0000 (18:33 +0100)]
sysctl: Make meaning of max_cpu_index field clearer.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agox86, pm: provide core/package cstate residencies
Keir Fraser [Mon, 12 Jul 2010 17:30:26 +0000 (18:30 +0100)]
x86, pm: provide core/package cstate residencies

According to Intel 64 and IA32 Architectures SDM 3B Appendix B, Intel
Nehalem/Westmere processors provide h/w MSR to report the core/package
cstate residencies. Extend sysctl_get_pmstat interface to pass the
core/package cstate residencies.

Signed-off-by: Wei Gang <gang.wei@intel.com>
15 years agoConsolidate MSI-X related definitions
Keir Fraser [Mon, 12 Jul 2010 09:48:34 +0000 (10:48 +0100)]
Consolidate MSI-X related definitions

Eliminate redundant ones, fix names (where so far inappropriately
referring to capability structure fields the don't really relate to),
use symbolic names instead of raw numbers, and remove an unusable one.

No functional change intended.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agox86 cpufreq: Fix debug=y build.
Keir Fraser [Mon, 12 Jul 2010 09:48:04 +0000 (10:48 +0100)]
x86 cpufreq: Fix debug=y build.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agox86: allow the MSI-X table to reside beyond 4G even on 32-bit systems
Keir Fraser [Mon, 12 Jul 2010 09:43:57 +0000 (10:43 +0100)]
x86: allow the MSI-X table to reside beyond 4G even on 32-bit systems

Underlying interfaces allow this, and unduly (and silently) truncating
addresses doesn't seem nice.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agox86: prevent simultaneous use of MSI and MSI-X
Keir Fraser [Mon, 12 Jul 2010 09:43:34 +0000 (10:43 +0100)]
x86: prevent simultaneous use of MSI and MSI-X

This matches similar checks done in Linux, since no good can come from
a domain trying to enable both MSI and MSI-X on the same device at the
same time.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agox86: fix a benign typo
Keir Fraser [Mon, 12 Jul 2010 09:43:10 +0000 (10:43 +0100)]
x86: fix a benign typo

Just to avoid confusing readers - no functional change.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agox86/cpufreq: pass pointers to cpu masks where possible
Keir Fraser [Mon, 12 Jul 2010 09:41:48 +0000 (10:41 +0100)]
x86/cpufreq: pass pointers to cpu masks where possible

This includes replacing the bogus definition of cpumask_test_cpu()
(introduced by c/s 20073) with a Linux compatible one and replacing
the bad uses with cpu_isset().

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoupdate QEMU_TAG to 833e7e9a4c95739429dc0c803bbbf2346f9897fd
Ian Jackson [Fri, 9 Jul 2010 17:49:12 +0000 (18:49 +0100)]
update QEMU_TAG to 833e7e9a4c95739429dc0c803bbbf2346f9897fd

15 years agotools/hotplug: xencommons: xenconsoled tracing
Ian Jackson [Fri, 9 Jul 2010 17:46:07 +0000 (18:46 +0100)]
tools/hotplug: xencommons: xenconsoled tracing

cut and paste error lead to using the xenstored command line syntax
for xenconsoled.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agox86 hvm: Add a hypercall to allow HVM PV drivers to insert xentrace records
Keir Fraser [Fri, 9 Jul 2010 16:16:41 +0000 (17:16 +0100)]
x86 hvm: Add a hypercall to allow HVM PV drivers to insert xentrace records

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agox86 hvm: Add a new HVMOP to get the current Xen system time
Keir Fraser [Fri, 9 Jul 2010 16:16:03 +0000 (17:16 +0100)]
x86 hvm: Add a new HVMOP to get the current Xen system time

Xen absolute system time, so that it can use SCHEDOP_poll in a
sensible fashion.  HVM PV drivers can't use the normal PV clock
because they might have TSC offsets that hey don't know about.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agoiommu: New options iommu=dom-strict and iommu=dom0-passthrough
Keir Fraser [Fri, 9 Jul 2010 15:45:42 +0000 (16:45 +0100)]
iommu: New options iommu=dom-strict and iommu=dom0-passthrough

The former strips dom0 of its usual 1:1 mapping of all memory, and
only provides it with mappings of its own memory, like any other
domain. The latter is a new consistent name for iommu=passthrough.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoiommu: Remove pointless iommu=pv boot option.
Keir Fraser [Fri, 9 Jul 2010 14:39:35 +0000 (15:39 +0100)]
iommu: Remove pointless iommu=pv boot option.

Allow devices to always be passed through to PV domains, just as they
can be to HVM domains.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoMerge
Keir Fraser [Fri, 9 Jul 2010 11:35:58 +0000 (12:35 +0100)]
Merge

15 years agohvmloader: customize the SMBIOS strings based on xenstore keys
Keir Fraser [Fri, 9 Jul 2010 11:34:40 +0000 (12:34 +0100)]
hvmloader: customize the SMBIOS strings based on xenstore keys

...written at domain creation time by xapi.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agohvmloader: Add a xenbus frontend so it can read values from xenstore
Keir Fraser [Fri, 9 Jul 2010 11:33:57 +0000 (12:33 +0100)]
hvmloader: Add a xenbus frontend so it can read values from xenstore

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agotrace: Trace emulated RDTSC values
Keir Fraser [Fri, 9 Jul 2010 11:28:03 +0000 (12:28 +0100)]
trace: Trace emulated RDTSC values

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
15 years agotrace: Reinstate tracing for emulated MSR reads and writes
Keir Fraser [Fri, 9 Jul 2010 11:27:45 +0000 (12:27 +0100)]
trace: Reinstate tracing for emulated MSR reads and writes

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
15 years agoEliminate unnecessary NR_CPUS-sized arrays from 't' key handler
Keir Fraser [Fri, 9 Jul 2010 11:25:07 +0000 (12:25 +0100)]
Eliminate unnecessary NR_CPUS-sized arrays from 't' key handler

Replace them with per-CPU data.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agocpufreq: eliminate unnecessary NR_CPUS-sized arrays
Keir Fraser [Fri, 9 Jul 2010 11:24:41 +0000 (12:24 +0100)]
cpufreq: eliminate unnecessary NR_CPUS-sized arrays

Replace them with per-CPU data.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agox86/svm: eliminate unnecessary NR_CPUS-sized arrays
Keir Fraser [Fri, 9 Jul 2010 11:24:15 +0000 (12:24 +0100)]
x86/svm: eliminate unnecessary NR_CPUS-sized arrays

Replace them with per-CPU data.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agox86/mce: eliminate unnecessary NR_CPUS-sized arrays
Keir Fraser [Fri, 9 Jul 2010 11:23:52 +0000 (12:23 +0100)]
x86/mce: eliminate unnecessary NR_CPUS-sized arrays

Replace them with per-CPU data.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoMakefile: Serialise stubdom build after tools
Keir Fraser [Fri, 9 Jul 2010 11:22:52 +0000 (12:22 +0100)]
Makefile: Serialise stubdom build after tools

Currently "make stubdom" on its own fails because it depends on files
being installed by the results of "make tools".  This also means that
in some circumstances a parallel "make tools stubdom" (or "make all")
can fail due to races.  So make "make stubdom" depend on "make tools"
having completed first.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxen: allow HVM save/restore from different cpus
Keir Fraser [Fri, 9 Jul 2010 11:22:35 +0000 (12:22 +0100)]
xen: allow HVM save/restore from different cpus

The hardware CPUID-levelling features level the feature flags but
don't change the CPU family/model/stepping.  Relax the HVM restore
check on family/model/stepping to printk but not veto the load, so
that VMs can be migrated between machines that have been
CPUID-levelled.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agoxen: allow HVM save/restore from different changesets
Keir Fraser [Fri, 9 Jul 2010 11:22:00 +0000 (12:22 +0100)]
xen: allow HVM save/restore from different changesets

Allow HVM save/restore from different changesets of Xen.  The HVM save
records are supposed to be backwards compatible; XenServer
live-migrates between versions of Xen during upgrades.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agomce: Replace BUG() with a console warning in the MCE handler.
Keir Fraser [Fri, 9 Jul 2010 11:21:31 +0000 (12:21 +0100)]
mce: Replace BUG() with a console warning in the MCE handler.

If the hardware reports corrected errors that we didn't see through
the status MSRs, complain on the console but don't BUG() the machine.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agotools/libxl: implement support for nomigrate option in VM profiles
Ian Jackson [Thu, 8 Jul 2010 16:54:42 +0000 (17:54 +0100)]
tools/libxl: implement support for nomigrate option in VM profiles

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agotools/libxl: Read soundhw option and pass it on to qemu
Ian Jackson [Thu, 8 Jul 2010 16:53:19 +0000 (17:53 +0100)]
tools/libxl: Read soundhw option and pass it on to qemu

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agotools/xentrace: increase default xentrace buffer size.
Ian Jackson [Thu, 8 Jul 2010 16:39:00 +0000 (17:39 +0100)]
tools/xentrace: increase default xentrace buffer size.

increase default xentrace buffer size to reduce the number of
lost records.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agotools/libxl/xl: fix for short BDF (without domain specified)
Ian Jackson [Thu, 8 Jul 2010 16:22:18 +0000 (17:22 +0100)]
tools/libxl/xl: fix for short BDF (without domain specified)

Check that BDF have been parsed correctly.  Before this fix, BDF could
be parsed incorrectly if user omitted the domain.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Contributed-by: Sergey Tovpeko <tsv.devel@gmail.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agotools/debugger/gdbsx: build enabled by default
Ian Jackson [Thu, 8 Jul 2010 15:50:34 +0000 (16:50 +0100)]
tools/debugger/gdbsx: build enabled by default

Submitted-by: Bruce Edge <bruce.edge@gmail.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxend: Continue domain building even if memshr extensions are not
Keir Fraser [Thu, 8 Jul 2010 08:56:10 +0000 (09:56 +0100)]
xend: Continue domain building even if memshr extensions are not
present in the hypervisor.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxen: make the shadow allocation hypercalls include the p2m memory
Keir Fraser [Thu, 8 Jul 2010 08:52:51 +0000 (09:52 +0100)]
xen: make the shadow allocation hypercalls include the p2m memory
in the total shadow allocation. This makes the effect of allocation
changes consistent regardless of p2m activity on boot.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agoxen: use s_time_t for periodic timer deadlines.
Keir Fraser [Thu, 8 Jul 2010 08:52:34 +0000 (09:52 +0100)]
xen: use s_time_t for periodic timer deadlines.

Otherwise vcpu_periodic_timer_work() can think the next timer is in
the future (and re-issue it unchanged) while timer_softirq_action()
thinks it's in the past (and fires it immediately), leading to
livelock.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agorombios: use explicit SS prefix for calculated on-stack array accesses.
Keir Fraser [Thu, 8 Jul 2010 08:52:01 +0000 (09:52 +0100)]
rombios: use explicit SS prefix for calculated on-stack array accesses.

The bcc compiler gets constant array offsets right but does all
calculated array offsets via DS.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agorombios: move the stack to 0x9e000 and protect it with an e820 entry
Keir Fraser [Thu, 8 Jul 2010 08:51:40 +0000 (09:51 +0100)]
rombios: move the stack to 0x9e000 and protect it with an e820 entry
so that we don't corrupt E820_RAM memory with stack ops in S3 wakeup.
It has to move up so the lowest contiguous RAM area is >= 512MiB.

This relies on the previous fix to let DS != SS

Signed-off-by: Paul Durrant <Paul.Durrant@citrix.com>
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agorombios: wait 30s after a failed boot
Keir Fraser [Thu, 8 Jul 2010 08:46:09 +0000 (09:46 +0100)]
rombios: wait 30s after a failed boot

Prevents waiting forever for a keypress that may never come if boot is
unattended.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agox86/mce: use cpu_online() instead of cpu_isset(,cpu_online_map)
Keir Fraser [Thu, 8 Jul 2010 08:45:11 +0000 (09:45 +0100)]
x86/mce: use cpu_online() instead of cpu_isset(,cpu_online_map)

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agox86/cpufreq: check array index before use
Keir Fraser [Thu, 8 Jul 2010 08:44:46 +0000 (09:44 +0100)]
x86/cpufreq: check array index before use

... rather than after.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoMerge
Keir Fraser [Tue, 6 Jul 2010 16:58:37 +0000 (17:58 +0100)]
Merge

15 years agotools/libxl: revert 15bcf57fcf24 (disable_migrate)
Ian Jackson [Tue, 6 Jul 2010 16:38:19 +0000 (17:38 +0100)]
tools/libxl: revert 15bcf57fcf24 (disable_migrate)

That patch is entirely wrong.  xc_domain_disable_migrate does not work
like that, and the config parameter is misnamed.

15 years agotools/ocaml: Fix up ocaml build for timer_mode, hpet and vpt_align
Ian Jackson [Tue, 6 Jul 2010 16:31:04 +0000 (17:31 +0100)]
tools/ocaml: Fix up ocaml build for timer_mode, hpet and vpt_align

c/s da46b25cf17d broke the ocaml build.  This fixes it.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agotools/libxl: support the "disable_migrate" domain config option
Ian Jackson [Tue, 6 Jul 2010 16:22:39 +0000 (17:22 +0100)]
tools/libxl: support the "disable_migrate" domain config option

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
15 years agotools/libxl: allow setting of timer_mode, hpet and vpt_align parameters
Ian Jackson [Tue, 6 Jul 2010 15:55:49 +0000 (16:55 +0100)]
tools/libxl: allow setting of timer_mode, hpet and vpt_align parameters

Implement parsing for timer_mode, hpet and vpt_align parameters.

These are all HVM only parameters and hpet/vpt_align are boolean so
change types and place in hvm union accordingly. Also HPET is x86 only
on principle so make this compile-time conditional on arch as-is
viridian.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
15 years agox86: eliminate unused "quad_local_to_mp_bus_id"
Keir Fraser [Tue, 6 Jul 2010 15:55:02 +0000 (16:55 +0100)]
x86: eliminate unused "quad_local_to_mp_bus_id"

Signed-off-by: Jan Beulich <jbeulich@novell.com>